package com.ruoyi.equ.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 资产设备对象 equ_asset
 *
 * @author ruoyi
 * @date 2025-11-08
 */
public class EquAsset extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 资产设备id */
    private Long assetId;

    /** 设备/物资名称（如“呼吸机”“监护仪”） */
    @Excel(name = "设备/物资名称", readConverterExp = "如=“呼吸机”“监护仪”")
    private String assetName;

    /** 资产唯一编号（主键，规则：YYSB-年份-科室缩写-序号，如YYSB-2025-NK-001） */
    @Excel(name = "资产唯一编号", readConverterExp = "主=键，规则：YYSB-年份-科室缩写-序号，如YYSB-2025-NK-001")
    private String assetNumber;

    /** 资产品牌 */
    @Excel(name = "资产品牌")
    private String assetBrand;

    /** 资产类型（设备：单价≥XX固定资产；其余按文档分类） */
    @Excel(name = "资产类型", readConverterExp = "设备")
    private String assetType;

    /** 设备配置 */
    private String assetSetup;

    /** 型号规格（如“ABC-2025”） */
    @Excel(name = "型号规格", readConverterExp = "如=“ABC-2025”")
    private String modelSpec;

    /** 生产批号 */
    @Excel(name = "生产批号")
    private String batchNumber;

    /** 生产厂家 */
    @Excel(name = "生产厂家")
    private String manufacturer;

    /** 包装照片 */
    @Excel(name = "包装照片")
    private String packageImage;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplier;

    /** 检测报告 */
    @Excel(name = "检测报告")
    private String checkReport;

    /** 产品合格证 */
    @Excel(name = "产品合格证")
    private String certificate;

    /** 采购合同编号 */
    @Excel(name = "采购合同编号")
    private String contractNo;

    /** 发票编号 */
    @Excel(name = "发票编号")
    private String invoiceNumber;

    /** 是否含税(含税/不含税) */
    @Excel(name = "是否含税(含税/不含税)")
    private String isTax;

    /** 实际到货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际到货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date arrivalDate;

    /** 运输单位 */
    @Excel(name = "运输单位")
    private String transportUnit;

    /** 运输单号 */
    @Excel(name = "运输单号")
    private String transportNo;

    /** 购置金额（元，区分含税/不含税） */
    @Excel(name = "购置金额", readConverterExp = "元=，区分含税/不含税")
    private BigDecimal purchaseAmount;

    /** 规定使用年限（年） */
    @Excel(name = "规定使用年限", readConverterExp = "年=")
    private Long serviceLife;

    /** 质保开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "质保开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date warrantyStartTime;

    /** 质保结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "质保结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date warrantyEndTime;

    /** 接收科室 */
    @Excel(name = "接收科室")
    private String acceptDept;

    /** 当前使用科室（如“内科”“儿科”） */
    @Excel(name = "当前使用科室", readConverterExp = "如=“内科”“儿科”")
    private String useDept;

    /** 当前存放地点（精确到楼层房间，如“内科楼302病房”） */
    @Excel(name = "当前存放地点", readConverterExp = "精=确到楼层房间，如“内科楼302病房”")
    private String storageLocation;

    /** 入库数量(默认1，耗材会大于1) */
    @Excel(name = "入库数量(默认1，耗材会大于1)")
    private Long num;

    /** 购置日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "购置日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 累计折旧金额（元） */
    @Excel(name = "累计折旧金额", readConverterExp = "元=")
    private BigDecimal accumulatedDepreciation;

    /** 资产账面净值（元，购置金额-累计折旧） */
    @Excel(name = "资产账面净值", readConverterExp = "元=，购置金额-累计折旧")
    private BigDecimal bookValue;

    /** 资产状态 */
    @Excel(name = "资产状态")
    private String assetStatus;

    /** 其他信息 */
    @Excel(name = "其他信息")
    private String otherInfo;

    /** 入库人id */
    @Excel(name = "入库人id")
    private Long userId;

    public String getAssetSetup() {
        return assetSetup;
    }

    public void setAssetSetup(String assetSetup) {
        this.assetSetup = assetSetup;
    }

    public void setAssetId(Long assetId)
    {
        this.assetId = assetId;
    }

    public Long getAssetId()
    {
        return assetId;
    }

    public void setAssetName(String assetName)
    {
        this.assetName = assetName;
    }

    public String getAssetName()
    {
        return assetName;
    }

    public void setAssetNumber(String assetNumber)
    {
        this.assetNumber = assetNumber;
    }

    public String getAssetNumber()
    {
        return assetNumber;
    }

    public void setAssetBrand(String assetBrand)
    {
        this.assetBrand = assetBrand;
    }

    public String getAssetBrand()
    {
        return assetBrand;
    }

    public void setAssetType(String assetType)
    {
        this.assetType = assetType;
    }

    public String getAssetType()
    {
        return assetType;
    }

    public void setModelSpec(String modelSpec)
    {
        this.modelSpec = modelSpec;
    }

    public String getModelSpec()
    {
        return modelSpec;
    }

    public void setBatchNumber(String batchNumber)
    {
        this.batchNumber = batchNumber;
    }

    public String getBatchNumber()
    {
        return batchNumber;
    }

    public void setManufacturer(String manufacturer)
    {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer()
    {
        return manufacturer;
    }

    public void setPackageImage(String packageImage)
    {
        this.packageImage = packageImage;
    }

    public String getPackageImage()
    {
        return packageImage;
    }

    public void setSupplier(String supplier)
    {
        this.supplier = supplier;
    }

    public String getSupplier()
    {
        return supplier;
    }

    public void setCheckReport(String checkReport)
    {
        this.checkReport = checkReport;
    }

    public String getCheckReport()
    {
        return checkReport;
    }

    public void setCertificate(String certificate)
    {
        this.certificate = certificate;
    }

    public String getCertificate()
    {
        return certificate;
    }

    public void setContractNo(String contractNo)
    {
        this.contractNo = contractNo;
    }

    public String getContractNo()
    {
        return contractNo;
    }

    public void setInvoiceNumber(String invoiceNumber)
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber()
    {
        return invoiceNumber;
    }

    public void setIsTax(String isTax)
    {
        this.isTax = isTax;
    }

    public String getIsTax()
    {
        return isTax;
    }

    public void setArrivalDate(Date arrivalDate)
    {
        this.arrivalDate = arrivalDate;
    }

    public Date getArrivalDate()
    {
        return arrivalDate;
    }

    public void setTransportUnit(String transportUnit)
    {
        this.transportUnit = transportUnit;
    }

    public String getTransportUnit()
    {
        return transportUnit;
    }

    public void setTransportNo(String transportNo)
    {
        this.transportNo = transportNo;
    }

    public String getTransportNo()
    {
        return transportNo;
    }

    public void setPurchaseAmount(BigDecimal purchaseAmount)
    {
        this.purchaseAmount = purchaseAmount;
    }

    public BigDecimal getPurchaseAmount()
    {
        return purchaseAmount;
    }

    public void setServiceLife(Long serviceLife)
    {
        this.serviceLife = serviceLife;
    }

    public Long getServiceLife()
    {
        return serviceLife;
    }

    public void setWarrantyStartTime(Date warrantyStartTime)
    {
        this.warrantyStartTime = warrantyStartTime;
    }

    public Date getWarrantyStartTime()
    {
        return warrantyStartTime;
    }

    public void setWarrantyEndTime(Date warrantyEndTime)
    {
        this.warrantyEndTime = warrantyEndTime;
    }

    public Date getWarrantyEndTime()
    {
        return warrantyEndTime;
    }

    public void setAcceptDept(String acceptDept)
    {
        this.acceptDept = acceptDept;
    }

    public String getAcceptDept()
    {
        return acceptDept;
    }

    public void setUseDept(String useDept)
    {
        this.useDept = useDept;
    }

    public String getUseDept()
    {
        return useDept;
    }

    public void setStorageLocation(String storageLocation)
    {
        this.storageLocation = storageLocation;
    }

    public String getStorageLocation()
    {
        return storageLocation;
    }

    public void setNum(Long num)
    {
        this.num = num;
    }

    public Long getNum()
    {
        return num;
    }

    public void setPurchaseDate(Date purchaseDate)
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate()
    {
        return purchaseDate;
    }

    public void setAccumulatedDepreciation(BigDecimal accumulatedDepreciation)
    {
        this.accumulatedDepreciation = accumulatedDepreciation;
    }

    public BigDecimal getAccumulatedDepreciation()
    {
        return accumulatedDepreciation;
    }

    public void setBookValue(BigDecimal bookValue)
    {
        this.bookValue = bookValue;
    }

    public BigDecimal getBookValue()
    {
        return bookValue;
    }

    public void setAssetStatus(String assetStatus)
    {
        this.assetStatus = assetStatus;
    }

    public String getAssetStatus()
    {
        return assetStatus;
    }

    public void setOtherInfo(String otherInfo)
    {
        this.otherInfo = otherInfo;
    }

    public String getOtherInfo()
    {
        return otherInfo;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("assetId", getAssetId())
                .append("assetName", getAssetName())
                .append("assetNumber", getAssetNumber())
                .append("assetBrand", getAssetBrand())
                .append("assetSetup", getAssetSetup())
                .append("assetType", getAssetType())
                .append("modelSpec", getModelSpec())
                .append("batchNumber", getBatchNumber())
                .append("manufacturer", getManufacturer())
                .append("packageImage", getPackageImage())
                .append("supplier", getSupplier())
                .append("checkReport", getCheckReport())
                .append("certificate", getCertificate())
                .append("contractNo", getContractNo())
                .append("invoiceNumber", getInvoiceNumber())
                .append("isTax", getIsTax())
                .append("arrivalDate", getArrivalDate())
                .append("transportUnit", getTransportUnit())
                .append("transportNo", getTransportNo())
                .append("purchaseAmount", getPurchaseAmount())
                .append("serviceLife", getServiceLife())
                .append("warrantyStartTime", getWarrantyStartTime())
                .append("warrantyEndTime", getWarrantyEndTime())
                .append("acceptDept", getAcceptDept())
                .append("useDept", getUseDept())
                .append("storageLocation", getStorageLocation())
                .append("num", getNum())
                .append("purchaseDate", getPurchaseDate())
                .append("accumulatedDepreciation", getAccumulatedDepreciation())
                .append("bookValue", getBookValue())
                .append("assetStatus", getAssetStatus())
                .append("otherInfo", getOtherInfo())
                .append("userId", getUserId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
